The World Wide Web is becoming the method of choice for searching for information, doing business, and is even becoming a viable means of socializing with others. The popularity of the World Wide Web has put unexpected demands on the systems which support and sustain the Web such that, many times, the performance of the Web is impacted. As more and more people attempt to access the same web sites or traverse the same links, the links and web sites become congested. The congestion causes the response time to the user to increase. This increase in response time increases the cost to the users as well as frustrating users. When a web site becomes too congested, users will start finding alternative web sites that have better performance. This is extremely undesirable to the owners of the web sites who, in some instances, receive revenue based on the number of users accessing their site.
Creators of the web sites have attempted to solve this problem by creating multiple instances of a web site and having users link to these multiple instances. While this sounds like a good solution, it is not without problems. Since web sites must be accessed by their name, the owner of the site must distribute different names to the different users and have them access the different instances of the same information. This is shown in FIG. 1. The management of the different names becomes complicated in that the owner of the site must determine who will be likely to be accessing the site at any given time and distribute them evenly over the multiple instances of the information. The site owner must distribute the names such that the load on each of the multiple servers that support the information remains relatively even or risk encountering the same problems that they would if there was only one server. In addition, the method of distributing the name of different web sites to different users results in some users not being able to access the information if one of the alternative sites goes down. Since the user only knows one name where the location may be found, they will lose access if their server is the one that goes down while other servers having access to the identical information remain active. Additional confusion results if a user discovers the multiple locations of the information. The user may become confused as to which information is "current".
Others have tried to solve the problem of web site load balancing by using Web Sprayers. A web sprayer is an intermediate server which is connected to multiple other servers. Each of the multiple servers to which the sprayer is connected contains the same information, replicated. Anyone trying to access the information on the multiple servers must access the information through the sprayer. The sprayer receives the request for the information, determines which of the multiple servers to send the next request to, and sends the request to the appropriate secondary server. This can also be implemented as a simple round-robin serving approach to distribute the work between the multiple data servers. This approach, while useful to improve the performance in general, has some significant drawbacks in that if the sprayer goes down or malfunctions access to the information is lost. The different secondary servers cannot be accessed without the sprayer. In addition, the current implementations of the sprayers have no means of determining how busy each of the secondary servers is. Someone making a single request of a server taking only a few seconds is treated the same as someone making a request which takes an hour. This can lead to some imbalancing of the secondary server workload, although it is definitely a significant performance improvement over having a single server.